package com.cskaoyan.javase.method._3usecase;

/**
 * 方法的使用场景
 * 一般来说,方法有两种常见使用的场景:
 *      1.复用代码.当有代码需要被反复使用时,为了避免代码冗余,可以提取出方法.
 *      这种需求在开发中是很常见的,idea提供了快速提取方法的快捷键:
 *      ctrl + alt + m
 *
 *      2.即便是不需要复用代码,但是如果某个方法的代码过长,很明显也会影响代码可读性
 *          在很多公司规范中,都会要求程序员,一个方法不要写超过100行,一般不要超过80行
 *          如果方法过长,就需要保留住方法的骨干逻辑,而提取出分支逻辑作为一个独立的方法
 *          这样方法的主要逻辑会更加清晰,分支逻辑独立后,也可能有复用的机会.
 *
 *
 * @since 15:59
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // Found duplicate code
        // 编写程序，计算10+20，并输出结果
        int sum = getSum(10, 20);
        System.out.println(sum);
        // 编写程序，计算111+222，并输出结果
        int sum1 = getSum(111, 222);
        System.out.println(sum1);
        // 编写程序，计算333+444，并输出结果
        int sum2 = getSum(333, 444);
        System.out.println(sum2);
    }

    public static int getSum(int i, int i2) {
        int a = i;
        int b = i2;
        return a + b;
    }

    public static void test(){
        // 很多代码
        // 中间存在一个和方法的骨干逻辑没有关系的一个求和逻辑
        // 这时虽然不需要复用求和的方法,但也仍然有必要提取方法
        int sum = getSum(10, 20);
        // 很多代码
    }
}
